#include "at_api.h"

at_dev_t* at_dev;


bool at_dev_register(at_dev_t *dev)
{
    if(at_dev!=NULL)return false;
    if(dev==NULL)return false;
    at_dev=dev;
    return true;
}
bool at_dev_unregister(void)
{
    if(at_dev!=NULL)at_dev=NULL;
    return true;
}
bool at_mqtt_init(void)
{
    if(at_dev!=NULL)
    {
        return at_dev->init();
    }
    return false;
}
bool at_mqtt_deinit(void)
{
    if(at_dev!=NULL)
    {
        return at_dev->deinit();
    }
    return false;    
}
bool at_mqtt_connect(char *server,uint16_t port,char *proKey, char *devName, char *devSecret)
{
    if(at_dev!=NULL)
    {
        return at_dev->mqtt_connect(server,port,proKey,devName,devSecret);
    }   
    return false;
}

bool at_mqtt_disconnect(void)
{
    if(at_dev!=NULL)
    {
        return at_dev->mqtt_disconnect();
    }
    return false;
}
bool at_mqtt_pub(const char *topic, const char *message, uint16_t msg_len,uint32_t timeout)
{
    if(at_dev!=NULL)
    {
        return at_dev->mqtt_pub(topic,message,msg_len,timeout);
    }
    return false;
}
bool at_mqtt_sub(const char *topic, int timeout)
{
    if(at_dev!=NULL)
    {
        return at_dev->mqtt_sub(topic,timeout);
    }
    return false;
}
bool at_mqtt_unsub(const char *topic)
{
    if(at_dev!=NULL)
    {
        return at_dev->mqtt_unsub(topic);
    }
    return false;
}
bool at_mqtt_recv_register(mqtt_recv_callback cb)
{
    if(at_dev!=NULL)
    {
        return at_dev->mqtt_recv_register(cb);
    }
    return false;
}


